// 导出 export

// 1.可以直接导出
export var name = 'tom'
export var age = 18

// 2.可以统一导出
export {
    name as fooName,//导出 fooName 替代 name
    age,
}
// 默认导出
export default name
export default { name, age }
// --------------------------------------------------------------

// 导入 import

// 1.导入时路径可以是相对，绝对，全部 http，但是必须要完整，不可以省略文件后缀，相对路径的 './' 也不可以省略
import { name, age } from "./06-导入导出.js"
import { name, age } from "/part-02-02-01/06-导入导出.js"
import 'http://......com'
// 2.只需要文件，不需要变量时，可以省略，直接 import '...'
import { } from './05-ES Modules特性.js'
import './05-ES Modules特性.js'
// 3.当导入的内容过多时，可以使用 * 全部导入，使用 as 重命名一个变量
import * as mod form '...'
// 4.import { } from '...'，文件路径不可以是变量，而且只能在最顶层导入，不可以在代码里面导入，除非动态导入，动态导入是异步的，后面要跟then
import('./module.js').then((module) => { console.log(module) })
// 5.导入有变量和默认变量时，可以给default as mod 重命名一个变量，也可以在{ } 前声明一个默认变量
import { name, age, default as title } from '..'
import title, { name, age } from '..'

// -------------------------------------------------------

// 导入导出注意事项：
1.export { } ，import { } 是固定语法，导出里面不是对象字面量，导入不是解构
2.export default { name, age } | export default name , default后面跟的才是数值
3.export { } 的是引用关系，不是直接复制，所以 import { } 后只读，不可以修改

// --------------------------------------------------------

// 导入导出成员

import { name } from './name.js'
import { age } from './age.js'
export { name, age }

// 等价与
export { name } from './name.js'
export { age } from './age.js'

// 注意：如果导入的文件是默认导出，不可以直接使用export default ，表示当前文件的默认导出
export { default as sex } from './sex.js'



